Computer system, computer, storage system, and control terminal

ABSTRACT

To manage physical paths between a server system and a storage system and information about routing between virtual machines and virtual storage systems in an integrated fashion. A computer system of the present invention includes: a computer and a storage system that stores data, in which the computer includes first information for managing the first resource relating to the computer; and the storage system includes second information for managing the second resource provided in the storage system, and in which a relation between the virtual machine and the virtual storage system is defined based on the first information and the second information.

CLAIM OF PRIORITY

The present application claims priority from Japanese patent applicationP2005-20908 filed on Jan. 28, 2005, the content of which is herebyincorporated by reference into this application.

BACKGROUND

This invention relates to a computer system, and more particularly to atechnique of logically partitioning a computer system including astorage system.

One approach to improving the performance of an information processingsystem is to increase the number of computers in an informationprocessing system. However, the use of many computers in a system posesthe following problem: it necessitates a troublesome task of controllingindividual computers, requires a larger footprint for the computers andconsumes more electric power.

As a solution to this problem, technology which logically partitionsresources of a computer with a large processing capacity (LPAR: LogicalPartitioning) and makes it possible to use resulting logical partitionsas independent virtual machines has been proposed. This logicalpartitioning technology can make one computer look like a plurality ofvirtual machines. When allocation of resources (processor, memory, etc.)to partitions is controlled, the performance of each virtual machine isassured.

With this technology, different operating systems can be freelyinstalled in virtual machines and each virtual machine can be turned onand off independently. Also faults in a virtual machine can notpropagate to other virtual machines and the failed virtual machine canrecover from the faults independently. Thus the computer with logicalpartitioning technology has greater flexibility than that of computerwhich does not have the technology.

In addition, the user can consolidate physical machines into fewerphysical machines. As a consequence the user benefits from the logicalpartitioning technology in terms of system management, footprint, andpower consumption. This kind of logical partitioning technology isdisclosed, for example, in JP 2003-157177 A.

Also, US 2003-0055933 discloses a technique of accessing a storagesystem from a logically partitioned virtual machine.

Also, a storage system logically partitioned by applying a technique oflogically partitioning computers is proposed in IBM, “The IBMTotalStorage DS8000 Series: Concepts and Architecture”, [online],Internet <URL: http://www.redbooks.ibm.com/redpieces/pdfs/sg246452.pdf>.

SUMMARY

A technique for preventing system down to improve computer systemreliability is also proposed. For this purpose, techniques likeclustering, multiplexing, automatic backup, hot swapping, etc. are usedto realize high-availability computer systems.

With conventional techniques of logically partitioning computers,resources in a computer, such as processors and memory, are logicallypartitioned and allocated to individual virtual machines. Similarly,conventional techniques of logically partitioning storage systemslogically partition resources in a storage system, such as cache memoryand disk drives, and allocate the partitioned resources to individualvirtual storage systems.

However, with these conventional techniques, the virtualization engineon the server side and the virtualization engine on the storage side donot cooperate with each other.

Furthermore, virtual paths established between virtual machines andvirtual storage systems do not always correspond to physical paths. Thisrequires that the administrator constantly check the relations betweenthe virtual paths and physical paths in making settings of the serverand storage systems. In particular, with computer systems having highavailability, server and storage systems are so complicatedly relatedthat making settings of the server and storage systems while checkingtheir relations requires advanced skills.

In other words, with conventional techniques, no information aboutrouting between virtual machines and virtual storage systems exists,because the server-side virtualization engine and the storage-sidevirtualization engine do not cooperate with each other. This raises aproblem in that realizing high availability requires referring toconfiguration information on both of the server side and the storageside.

It is therefore an object of this invention to manage physical pathsbetween a server system and a storage system and information aboutrouting between virtual machines and virtual storage systems in anintegrated fashion.

According to an embodiment of this invention, there is provided acomputer system including a computer and a storage system that storesdata, the computer including a first control unit that logicallypartitions a first resource provided in the computer to create and runan independent virtual machine; and first information for managing thefirst resource, and the storage system including a second control unitthat logically partitions a second resource provided in the storagesystem to create and run an independent virtual storage system; andsecond information for managing the second resource provided in thestorage system, in which a relation between the virtual machine and thevirtual storage system is defined based on the first information and thesecond information.

According to the embodiment of this invention, it is possible to easilyrealize a high-availability configuration of a computer system includingvirtual machines and virtual storage systems.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention can be appreciated by the description whichfollows in conjunction with the following figures, wherein:

FIG. 1 is a block diagram showing a hardware configuration of a computersystem according to a first embodiment of this invention;

FIG. 2 is a functional block diagram of the computer system according tothe first embodiment;

FIG. 3A is a diagram illustrating a virtual I/O adaptor control table ofa server system (0) according to the first embodiment;

FIG. 3B is a diagram illustrating a virtual I/O adaptor control table ofa server system (1) according to the first embodiment;

FIG. 4 is a diagram illustrating a virtual channel adaptor control tableaccording to the first embodiment;

FIG. 5 is a diagram illustrating a virtual path control table accordingto the first embodiment;

FIG. 6 is a diagram illustrating a server resources control tableaccording to embodiments of this invention;

FIG. 7 is a diagram illustrating a storage resources control tableaccording to embodiments of this invention;

FIG. 8 is a diagram illustrating connections in the computer systemaccording to the first embodiment;

FIG. 9 is a flowchart of a cable connection process according to thefirst embodiment;

FIG. 10 is a flowchart of a virtual machine creation process accordingto the first embodiment;

FIG. 11 is a diagram illustrating the structure of I/O channelcommunication protocol layers according to the first embodiment;

FIG. 12 is a diagram illustrating information transmitted between theserver systems and the storage system according to the first embodiment;

FIG. 13 is a diagram illustrating the contents of a hypervisorcommunication header according to the first embodiment;

FIG. 14 is a flowchart of a disk I/O command transmission processaccording to the first embodiment;

FIG. 15 is a flowchart of a disk I/O command completion notificationprocess according to the first embodiment;

FIG. 16 is a flowchart of a fault handling process according to thefirst embodiment;

FIG. 17 is a flowchart of a fault handling process according to thefirst embodiment;

FIG. 18 is a diagram illustrating a screen displayed on a controlterminal according to the first embodiment;

FIG. 19 is a diagram illustrating connections in a computer systemaccording to a second embodiment of this invention;

FIG. 20 is a flowchart of a fault handling process according to thesecond embodiment;

FIG. 21 is a diagram illustrating connections in a computer systemaccording to a third embodiment of this invention;

FIG. 22 is a flowchart of a fault handling process according to thethird embodiment;

FIG. 23 is a flowchart of a virtual machine rebooting process accordingto the third embodiment;

FIG. 24 is a functional block diagram showing a computer systemaccording to a fourth embodiment of this invention;

FIG. 25 is a functional block diagram showing a computer systemaccording to a fifth embodiment of this invention;

FIG. 26 is a block diagram showing a hardware configuration of acomputer system according to a sixth embodiment of this invention;

FIG. 27 is a diagram illustrating a virtual path control table accordingto the sixth embodiment;

FIG. 28 is a flowchart of a cable connection process in the computersystem according to the sixth embodiment;

FIG. 29 is a flowchart of a virtual machine creation process in thecomputer system according to the sixth embodiment:

FIG. 30 is a diagram showing a configuration of a zone configurationtable according to the sixth embodiment; and

FIG. 31 is a diagram showing another configuration of implementation ofvirtual machines according to the embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments of this invention will be described below referring to thedrawings.

First Embodiment

FIG. 1 is a block diagram showing a hardware configuration of a computersystem according to a first embodiment.

The computer system of the first embodiment includes a server system (0)100, a server system (1) 150, a storage system 200, and a controlterminal 300. Application programs run in the server system (0) 100 andthe server system (1) 150. The storage system 200 stores data requiredfor operations of the server systems 100 and 150. The control terminal300 manages information for controlling the computer system and controlsoperations of the entire computer system. The numbers enclosed inparentheses following the names of physical resources are identifiers ofthe physical resources.

The server system (0) 100 is a computer having physical resourcesincluding a CPU (0) 101, a non-volatile memory (0) 102, a main memory(0) 104, a LAN adaptor (0) 105, an I/O adaptor (0) 106, an I/O adaptor(1) 107, and a system bus 108.

The CPU (0) 101 performs arithmetic operations related to an operatingsystem (OS) and application programs executed in the server system (0)100.

The main memory (0) 104 stores programs and data required for theoperations of the CPU (0) 101.

The system bus (0) 108 connects the CPU (0) 101 and the LAN adaptor (0)105, the I/O adaptor 106, and the I/O adaptor 107 to transfer data andcontrol signals.

The I/O adaptor (0) 106 and the I/O adaptor (1) 107 are connected withthe storage system 200 through I/O channels (e.g., fibre channels) 400.The I/O adaptors 106 and 107 send data input/output requests and outputdata to the storage system 200 and receive data stored in the storagesystem 200. Two I/O adaptors are provided herein. More I/O adaptors maybe provided. The two I/O adaptors 106 and 107 operate independently.Thus, the processing system is duplicated so that access from the serversystem (0) 100 to the storage system 200 will not be stopped even whenone I/O adaptor fails.

The LAN adaptor (0) 105 is connected with the other server system 150,the storage system 200, and the control terminal 300, through a network410. The LAN adaptor (0) 105 sends and receives control signals andcontrol information (the contents of various control tables) to and fromthe systems connected through the network 410.

The non-volatile memory (0) 102 stores a hypervisor 103. The hypervisor103, implemented by the execution of processing by the CPU (0) 101, is ameans that enables logical partitioning of physical resources of theserver system (0) 100.

The hypervisor 103 is a program which is executed by the CPU101. Thehypervisor 103 is read from the non-volatile memory 102 by the initialboot program such as BIOS (Basic Input Output System) and loaded intomain memory (0) 102 when the power to the server system (0) 100 isturned on. And CPU (0) 101 executes the hypervisor 103 as a program. Inother words, the hypervisor 103 is a control program that createslogical partitions in the server system (0) 100 to create virtualmachines that operate independently.

Instead of being loaded after the turning on of the server system (0)100, the hypervisor 103 may be implemented by the OS of the serversystem (0) 100 and a virtualization engine program running on the OS.The virtualization engine program may be stored in the non-volatilememory (0) 102, or may be stored in the storage system 200. In thiscase, the OS is loaded when the power to the server system (0) 100 isturned on and the OS reads and executes the virtualization engineprogram.

The specification mostly describes operations chiefly in the softwareperspective, but, in reality, CPUs execute software to run thehypervisor 103 etc. and storage hypervisor 214 etc.

Alternatively, the hypervisor 103 may be configured not with softwarebut with hardware. For example, a chip specialized for hypervisor may beprovided, or a hypervisor block for controlling virtual machines may beprovided in the CPU (0) 101.

The server system (1) 150 is configured the same as the server system(0) 100 described so far and so its configuration is not described here.

The storage system 200 has a storage control block 210 including a CPU(2) 211, a main memory (2) 212, and a non-volatile memory (2) 213. Thestorage system 200 also has a storage control block 220 including a CPU(3) 221, a main memory (3) 222, and a non-volatile memory (3) 223. Theplurality of storage control blocks 210 and 220 operate independently.The processing system is thus duplicated so that the storage system 200does not stop even when one storage control block fails.

The storage control blocks 210 and 220 control data input/output to andfrom physical disk drives 236 and manages operations of the storagesystem 200. When the storage system 200 is a NAS (Network AttachedStorage), file systems operate in the storage control blocks 210 and220.

The CPU (2) 211 performs arithmetic operations related to variouscontrol programs executed in the storage system 100.

The main memory (2) 212 stores programs and data required for theoperations of the CPU (2) 211.

The non-volatile memory (2) 213 stores a storage hypervisor 214. Thestorage hypervisor 214, implemented by the execution of processing bythe CPUs 211 and 221, is a means that enables logical partitioning ofphysical resources of the storage system 200.

The storage hypervisor 214 is implemented with a control program thatcreates logical partitions in the storage system 200 to create virtualstorage systems that operate independently. The storage hypervisor 214can be implemented by adopting various methods as described above aboutthe hypervisor 103 of the server system (0) 100.

In the storage control block 220, the CPU (3) 221, the main memory (3)222, the non-volatile memory (3) 223, and the storage hypervisor 224operate in the same ways as the corresponding components of the storagecontrol block 210.

The storage system 200 further includes a LAN adaptor (2) 230 andchannel adaptors (0) 231 to (3) 234.

The channel adaptor (0) 231 and the channel adaptor (1) 232 areconnected with the server system (0) 100 through the I/O channels 400.The channel adaptors 231 and 232 receive data input/output requests andout put data from the server system (0) 100 and sends data stored in thestorage system 200.

Similarly, the channel adaptor (2) 233 and the channel adaptor (3) 234are connected with the server system (1) 150 through I/O channels 400.The channel adaptors 233 and 234 receive data input/output requests andoutput data from the server system (1) 150 and sends data stored in thestorage system 200.

The storage system 200 thus has a plurality of channel adaptors. Theplurality of channel adaptors 231 to 234 operate independently. Theprocessing system is thus duplicated so that access to the storagesystem 200 from the server systems 100 and 150 does not stop even whenone channel adaptor fails.

The LAN adaptor (2) 230 is connected with the server systems 100 and 150and the control terminal 300, through the network 410. The LAN adaptor(2) 230 sends and receives control signals and control information (thecontents of various control tables) to and from the systems connectedthrough the network 410.

The storage system 200 further includes disk adaptors 237, a disk cache238, and physical disk drives 236.

The disk adaptors 237 are interfaces to the physical disk drives 236.The disk adaptors 237 send and receive data and control signals to andfrom the physical disk drives 236 according to a protocol such as theATA, SAS (Serial Attached SCSI), Fibre Channel, etc.

Two disk adaptors 237 are provided herein. More disk adaptors 237 may beprovided. The individual disk adaptors 237 are connected with thephysical disk drives 236 through different wires. The two disk adaptors237 operate independently. The processing system is thus duplicated sothat access to the physical disk drives 236 does not stop even when onedisk adaptor fails.

The disk cache 238 is a memory that temporarily stores data written toor read from the physical disk drives 236 and so the disk cache 238improves the performance of access from the server systems 100 and 150to the storage system 200.

The physical disk drives 236 are formed of a storage medium that storesdata. The storage medium is usually formed of magnetic disks, but may beformed of other media, e.g., optical disks. The plurality of physicaldisk drives 236 form a RAID (Redundant Array of Independent Disks) andthus provide the stored data with redundancy. Therefore, the stored datais not lost even when some of the physical disk drives 236 fail.

The storage system 200 further includes an interconnecting network 239that interconnects the storage control blocks 210 and 220, the LANadaptor 230, the channel adaptors 231 to 234, the disk adaptors 237, andthe disk cache 238. The interconnecting network 239 is formed of acrossbar switch, for example.

The control terminal 300 is a computer apparatus that manages thecomputer system and includes a CPU, memory, an input/output device, anda LAN interface in an integrated fashion. A virtual machine controlprogram 301 runs in the CPU of the control terminal 300.

The control terminal 300 has a virtual path control table 310 shown inFIG. 5, a server resources control table 320, and a storage resourcescontrol table 330. The virtual machine control program 301 controlsvirtual configuration of the computer system by using the virtual pathcontrol table 310, the server resources control table 320, and thestorage resources control table 330. The contents of these tables willbe described later. In the first embodiment, the control terminal 300includes a control unit (not shown) having connection information (thevirtual path control table 310) that defines connection paths betweenvirtual machines and virtual storage systems.

The LAN interface of the control terminal 300 is connected with theserver system 100, the server system 150, and the storage system 200,through the network 410. The LAN interface sends and receives controlsignals and control information (the contents of the various controltables) to and from the systems connected through the network 410.

The I/O channels 400 are formed of a transmission medium that can makecommunication according to a protocol suitable for data transfer, e.g.,the Fibre Channel protocol. In the first embodiment, the server systems100 and 150 and the storage system 200 are connected in a one-to-onemanner, but they may be connected through a network (SAN) as will bedescribed later in a sixth embodiment.

The network 410 connects the server system (0) 100, the server system(1) 150, the storage system 200, and the control terminal 300. Thenetwork 410 is configured to communicate control signals and controlinformation between computers according to, e.g., the TCP/IP protocol,which can be Ethernet (registered trademark).

While FIG. 1 shows an example in which two server systems 100 and 150and one storage system 200 are connected, three or more server systemsmay be provided and two or more storage systems may be provided.

FIG. 2 is a functional block diagram of the computer system according tothe first embodiment.

Functionally, the server system (0) 100 can be roughly divided into aphysical layer, a hypervisor layer, and a virtual machine layer.

The physical layer is a physical machine (0) 120 having serverresources, including the LAN adaptor and the I/O adaptors. The serverresources mean the physical resources of the server system, includingthe CPU, memory, and I/O adaptors. While the physical machine (0) 120includes other server resources (the CPU, memory, etc.) than those shownin FIG. 2, they are not shown in FIG. 2 because not related to thedescription here.

The hypervisor layer is implemented by the hypervisor 103 describedearlier. The hypervisor 103 controls the server resources of thephysical machine (0) 120. The hypervisor 103 has a virtual I/O adaptorcontrol table 110 and a server resources control table 115.

The numerals enclosed in parentheses following the names of physicalresources are identifiers of the physical resources. The numeralsenclosed in parentheses following the names of virtual resources areidentifiers of the virtual resources.

The virtual I/O adaptor control table 110 shown in FIG. 3A describescorrespondences between the physical I/O adaptors and virtual I/Oadaptors.

The server resources control table 115 shown in FIG. 6 definesassociations between the resources of the server system (0) 100 andvirtual machines. The server resources control table 115 is used tomanage the server resources of the server system (0) 100.

The virtual I/O adaptor control table 110 and the server resourcescontrol table 115 are stored in the main memory 104. Alternatively, thevirtual I/O adaptor control table 110 and the server resources controltable 115 may be stored in the non-volatile memory 102. When thesecontrol tables 110 and 115 are stored in the non-volatile memory 102,the virtual machine control information is retained even when the powerto the server system (0) 100 is shut off.

Alternatively, the virtual I/O adaptor control table 110 and the serverresources control table 115 may be stored in the storage system 200, inwhich case the control tables 110 and 115 will be read from the storagesystem 200 and stored in the main memory 104 after the server system (0)100 is booted.

Alternatively, the virtual I/O adaptor control table 110 and the serverresources control table 115 may be stored in the control terminal 300,in which case the control tables 110 and 115 will be read from thecontrol terminal 300 and stored in the main memory 104 after the serversystem (0) 100 is booted.

The hypervisor 103 further includes information about other serverresources that configure virtual machines.

The virtual machine layer includes virtual machines 130 and 140 that thehypervisor 103 has created by logically partitioning the serverresources of the physical machine (0) 120. The virtual machine (0) 130includes a virtual I/O adaptor (0) 131, a virtual I/O adaptor (1) 132, aCPU resource 133, and a memory resource 134. Similarly, the virtualmachine (1) 140 includes a virtual I/O adaptor (2) 141, a virtual I/Oadaptor (3) 142, a CPU resource 143, and a memory resource 144. Thevirtual machines 130 and 140 further include other server resources ofthe server system (0) 100, but they are not shown in FIG. 2 because notrelated to the description here.

An OS (0) 135 runs on the virtual machine (0) 130. Also, an OS (1) 145runs on the virtual machine (1) 140. In other words, the OS (0) 135performs arithmetic operations using the server resources allocated tothe virtual machine (0) 130. Similarly, the OS (1) 145 performsarithmetic operations using the server resources allocated to thevirtual machine (1) 140.

Application programs run on the OSs 135 and 145. These applicationprograms provide database services, Web services, etc. to clients (notshown) connected to the server system (0) 100.

The server system (1) 150 has the same functions as the server system(0) 100 described above. For example, a hypervisor layer is implementedby the hypervisor 153. The hypervisor 153 has a virtual I/O adaptorcontrol table 160 shown in FIG. 3B and a server resources control table165 shown in FIG. 6. The details of the functions of the server system(1) 150 are therefore not described here.

The storage system 200 can be roughly divided into a physical layer, ahypervisor layer, and a virtual storage layer.

The physical layer is a physical storage 240 having storage resources,including the LAN adaptor and the channel adaptors. The storageresources mean the physical resources of the storage system, includingthe CPU, disk cache, channel adaptors, and physical disk drives. Whilethe physical storage 240 includes other resources (the physical diskdrives, disk cache, etc.) than those shown in FIG. 2, they are not shownin FIG. 2 because not related to the description here.

The hypervisor layer is implemented by the storage hypervisors 214 and224 described earlier. The hypervisors 214 and 224 control the storageresources of the physical storage 240. The storage hypervisors 214 and224 have a virtual channel adaptor control table 260 and a storageresources control table 265.

The virtual channel adaptor control table 260 shown in FIG. 4 describescorrespondences between the physical channel adaptors and virtualchannel adaptors.

The storage resources control table 265 shown in FIG. 7 definesassociations between the resources of the storage system 200 and virtualmachines. The storage resources control table 223 is used to manage theallocation of the storage resources.

The virtual channel adaptor control table 260 and the storage resourcescontrol table 265 are stored in the main memory 212. Alternatively, thevirtual channel adaptor control table 260 and the storage resourcescontrol table 265 may be stored in the non-volatile memories 213 and223. When these control tables 260 and 265 are stored in thenon-volatile memories, the virtual storage system control information isretained even when the power to the storage system 200 is shut off.

Alternatively, the virtual channel adaptor control table 260 and thestorage resources control table 265 may be stored in the physical diskdrives 236, in which case the control tables 260 and 265 will be readfrom the physical disk drives 236 and stored in the main memories 212and 222 after the storage system 200 is booted.

Alternatively, the virtual channel adaptor control table 260 and thestorage resources control table 265 may be stored in the controlterminal 300, in which case the control tables 260 and 265 will be readfrom the control terminal 300 and stored in the main memories 212 and222 after the storage system 200 is booted.

The storage hypervisors 214 and 224 further include information aboutother storage resources that configure virtual storage systems.

The virtual storage layer includes virtual storage systems 240 and 250that the hypervisors 214 and 224 have created by logically partitioningthe storage resources of the physical storage 240. The virtual storage(0) 240 includes a virtual channel adaptor (0) 241, a virtual channeladaptor (1) 242, a disk cache resource 243, and a virtual disk 244.Similarly, the virtual storage (1) 250 includes a virtual channeladaptor (2) 251, a virtual channel adaptor (3) 252, a disk cacheresource 253, and a virtual disk 254. The virtual storage systems 240and 250 further include other storage resources of the storage system200, but they are not shown in FIG. 2 because not related to thedescription here.

In other words, in the virtual storage system (0) 240 and the virtualstorage system (1) 250, the storage hypervisors 214 and 224 maypartition a physical disk drive 236 into a plurality of virtual disks244 and 254, or may unite a plurality of physical disk drives 236 into asingle virtual disk 244 or 254.

The storage system 200 selects a single virtual disk or a plurality ofvirtual disks from the virtual disks 244 and 254 and provides thevirtual disk or disks to the virtual machines 100 and 150 as storageareas. The virtual disks thus selected are called logical units (LU).The logical unit indicates a unit that an OS can recognize as a singledisk.

The control terminal 300 has the virtual path control table 310 shown inFIG. 5. The virtual path control table 310 describes relations betweenthe virtual machines and the virtual storage systems. The controlterminal 300 generates the virtual path control table 310 by collectingtogether the control information contained in the virtual I/O adaptorcontrol table 110 of the server system (0) 100, the control informationcontained in the virtual I/O adaptor control table 160 of the serversystem (1) 150, and the control information contained in the virtualchannel adaptor control table 260 of the storage system 200.

FIGS. 3A and 3B are diagrams illustrating the virtual I/O adaptorcontrol tables according to the first embodiment. As stated earlier, avirtual I/O adaptor control table is provided for each server system.The virtual I/O adaptor control tables describe the correspondencesbetween the physical I/O adaptors and the virtual I/O adaptors.

FIG. 3A is a diagram illustrating the virtual I/O adaptor control table110 of the server system (0) 100.

The virtual I/O adaptor control table 110 contains I/O adaptor numbers111, virtual I/O adaptor numbers 112, and virtual machine numbers 113,in correspondence with each other.

The I/O adaptor numbers 111 are the identifiers of the physical I/Oadaptors. The virtual I/O adaptor numbers 112 are the identifiers of thevirtual I/O adaptors. The virtual machine numbers 113 are theidentifiers of the virtual machines residing in the server system (0)100.

FIG. 3B is a diagram illustrating the virtual I/O adaptor control table160 of the server system (1) 150.

The virtual I/O adaptor control table 160 contains I/O adaptor numbers161, virtual I/O adaptor numbers 162, and virtual machine numbers 163,in correspondence with each other.

The I/O adaptor numbers 161 are the identifiers of the physical I/Oadaptors. The virtual I/O adaptor numbers 162 are the identifiers of thevirtual I/O adaptors. The virtual machine numbers 163 are theidentifiers of the virtual machines residing in the server system (1)150.

These virtual I/O adaptor control tables 110 and 160 show which virtualmachines include which virtual I/O adaptors and which virtual I/Oadapters are implemented by which physical I/O adaptors.

For example, according to the first entry of the virtual I/O adaptorcontrol table 110 shown in FIG. 3A, the virtual I/O adaptor (0) of thevirtual machine (0) is implemented by server resources of the physicalI/O adaptor (0). Also, according to the first entry of the virtual I/Oadaptor control table 160 shown in FIG. 3B, the virtual I/O adaptor (4)of the virtual machine (2) is implemented by server resources of thephysical I/O adaptor (2).

FIG. 4 is a diagram illustrating the virtual channel adaptor controltable 260 according to the first embodiment.

The virtual channel adaptor control table 260 describes correspondencesbetween the physical channel adaptors and the virtual channel adaptors.Specifically, the virtual channel adaptor control table 260 containsvirtual storage system numbers 261, virtual channel adaptor numbers 262,and channel adaptor numbers 263, in correspondence with each other.

The virtual storage system numbers 261 are the identifiers of thevirtual storage systems in the storage system 200. The virtual channeladaptor numbers 262 are the identifiers of the virtual channel adaptors.The channel adaptor numbers 263 are the identifiers of the physicalchannel adaptors.

The virtual channel adaptor control table 260 shows which virtualstorage systems include which virtual channel adaptors and which virtualchannel adaptors are implemented by which physical channel adaptors.

For example, according to the first entry of the virtual channel adaptorcontrol table 260, the virtual channel adaptor (0) of the virtualstorage system (0) is implemented by storage resources of the physicalchannel adaptor (0). Also, according to the third entry, the virtualchannel adaptor (2) of the virtual storage system (1) is implemented bystorage resources of the physical channel adaptor (0).

FIG. 5 is a diagram illustrating the virtual path control table 310according to the first embodiment.

The virtual path control table 310 describes the relations between thevirtual machines and the virtual storage systems. In particular, thecorrespondence between a physical I/O adaptor and a physical channeladaptor specifies the physical path between the server system and thestorage system. In other words, the virtual path control table 310contains information about path between the virtual machines and thevirtual storage systems.

The control terminal 300 generates the virtual path control table 310 bycollecting together the information contained in the virtual I/O adaptorcontrol table 110 of the server system (0) 100, the informationcontained in the virtual I/O adaptor control table 160 of the serversystem (1) 150, and the information contained in the virtual channeladaptor control table 260 of the storage system 200. In other words, thevirtual path control table 310 is generated by uniting the virtual I/Oadaptor control table 110, the virtual I/O adaptor control table 160,and the virtual channel adaptor control table 260, and so the virtualpath control table 310 stores the control information in these tables.

Specifically, the virtual path control table 310 contains virtualstorage system numbers 311, virtual channel adaptor numbers 312, channeladaptor numbers 313, I/O adaptor numbers 314, virtual I/O adaptornumbers 315, and virtual machine numbers 316, in correspondence witheach other.

The virtual storage system numbers 311 correspond to the virtual storagesystem numbers 261 in the virtual channel adaptor control table 260shown in FIG. 4, and thus the virtual storage system numbers 311 are theidentifiers of the virtual storage systems in the storage system 200.

The virtual channel adaptor numbers 312 correspond to the virtualchannel adaptor numbers 262 in the virtual channel adaptor control table260 shown in FIG. 4, and thus the virtual channel adaptor numbers 313are the identifiers of the virtual channel adaptors.

The channel adaptor numbers 313 correspond to the virtual channeladaptor 263 in the virtual channel adaptor control table 260 shown inFIG. 4, and thus the channel adaptor numbers 313 are the identifiers ofthe physical channel adaptors.

The I/O adaptor numbers 314 correspond to the I/O adaptor numbers 111and 161 in the virtual I/O adaptor control tables 110 and 160 shown inFIGS. 3A and 3B, and thus the I/O adaptor numbers 314 are theidentifiers of the physical I/O adaptors.

The virtual I/O adaptor numbers 315 correspond to the virtual I/Oadaptor numbers 112 and 162 in the virtual I/O adaptor control tables110 and 160 shown in FIGS. 3A and 3B, and thus the virtual I/O adaptornumbers 315 are the identifiers of the virtual I/O adaptors.

The virtual machine numbers 316 correspond to the virtual machinenumbers 113 and 163 in the virtual I/O adaptor control tables 110 and160 shown in FIGS. 3A and 3B, and thus the virtual machine numbers 316are the identifiers of the virtual I/O adaptors.

The virtual path control table 310 shows which virtual channel adaptors(the physical channel adaptors that implement the virtual channeladaptors) of which virtual storage systems are connected to whichvirtual I/O adaptors (the physical I/O adaptors that implement thevirtual I/O adaptors) of which virtual machines.

In other words, the correspondence between a channel adaptor number 313and an I/O adaptor number 314 defines the connection between thephysical I/O adaptor and the physical channel adaptor. The connectionshows routing information about the physical path between the serversystem and the storage system.

For example, according to the first entry of the virtual path controltable 310, the virtual channel adaptor (0) of the virtual storage system(0) is implemented by storage resources of the physical channel adaptor(0). Also, the virtual I/O adaptor (0) of the virtual machine (0) isimplemented by server resources of the physical I/O adaptor (0). Thevirtual channel adaptor (0) implemented by the physical channel adaptor(0) corresponds to the virtual I/O adaptor (0) implemented by thephysical I/O adaptor (0).

Similarly, according to the second entry of the virtual path controltable 310, the virtual channel adaptor (1) implemented by the physicalchannel adaptor (1) corresponds to the virtual I/O adaptor (1)implemented by the physical I/O adaptor (1).

In other words, the virtual storage system (0) and the virtual machine(0) are connected by the physical channel adaptor (0) and the physicalI/O adaptor (0), and also by the physical channel adaptor (1) and thephysical I/O adaptor (1).

FIG. 6 is a diagram illustrating the server resources control table 115according to the first embodiment.

As stated earlier, the server resources control table 115 is provided inthe hypervisor 103 (in the server system (0) 100).

The server resources control table 115 stores virtual machine numbers701, CPU allocation 702, memory capacities 703, and I/O adaptor numbers704 in association with each other. The server resources control table115 thus stores the associations of the resources of the server system(0) 100 (the CPU (0) 101, the main memory (0) 104, and the I/O adaptors106 and 107).

The virtual machine numbers 701 indicate the virtual machines in theserver system (0) 100. The CPU allocation 702 indicates percentages ofareas of the CPU (0) 101 in the server system (0) 100 that are allocatedto the individual virtual machines. The memory capacities 703 indicatecapacities of the main memory (0) 104 that are allocated to the virtualmachines. The I/O adaptor numbers 704 indicate I/O adaptors that handleaccess from the virtual machines to the storage system 200.

The administrator specifies allocation of the server resources by meansof the control terminal 300 and the server resources control table 115is generated as per the administrator's setting.

The server resources control table 165 in the server system (1) 150 (thehypervisor 153) has the same items as the server resources control table115 described above, and thus the server resources control table 165stores the associations of the resources of the server system (1) 150.

The control terminal 300 possesses the server resources control table320. The server resources control table 320 has the same items as theserver resources control table 115 described above, and thus the serverresources control table 320 stores the associations of the resources ofthe server system (0) 100 and the associations of the resources of theserver system (1) 150.

FIG. 7 is a diagram illustrating the storage resources control table 265according to the first embodiment.

As stated earlier, the storage resources control table 265 is providedin the storage hypervisors 214 and 224 (in the storage system 200).

The storage resources control table 265 stores virtual machine numbers601, virtual disk numbers 602, disk cache capacities 603, CPU numbers604, and I/O adaptor numbers 605 in association with each other. Thestorage resources control table 265 thus stores the associations of theresources of the storage system 200 (the physical disk drives 236, CPUs211 and 221, the channel adaptors 231 to 234, and the disk cache 238).

The virtual machine numbers 601 correspond to the virtual machines inthe server systems 100 and 150. The virtual disk numbers 602 are numbersof the virtual disks 244 and 254 configured by the storage hypervisors214 and 224, which indicate virtual disks that are allocated to thevirtual machines defined by the virtual machine numbers 601. In otherwords, the virtual disk 244 has areas corresponding to virtual disknumbers 121 and 122 and the virtual disk 254 has areas corresponding tovirtual disk numbers 16 and 17. The virtual disks may be logical units.

The disk cache capacities 603 show capacities of the disk caches 243 and253 that are allocated to the virtual machines defined by the virtualmachine numbers 601. The CPU numbers 604 show the control CPUs 211 and221 that control access from the virtual machines defined by the virtualmachine numbers 601.

The channel adaptor numbers 605 show the channel adaptors 231 to 234that handle access from the virtual machines defined by the virtualmachine numbers 601 (access to the virtual disks defined by the virtualdisk numbers 602).

In other words, the two virtual disks 121 and 122 are allocated to thevirtual machine (0) 130. In order to access the virtual disks 121 and122, the virtual machine (0) 130 can use 512 megabytes of disk cache.The virtual machine (0) 130 accesses the virtual disks 121 and 122through the two I/O adaptors (0) and (1). The two CPUs 2 and 3 operateto process the access from the virtual machine (0) 130 to the virtualdisks 121 and 122.

The administrator specifies allocation of the storage resources by meansof the control terminal 300 and the storage resources control table 265is generated as per the administrator's setting.

Also, the control terminal 300 has the storage resources control table330. The storage resources control table 330 contains the same items asthe storage resources control table 265 described above, and stores theassociations of the resources of the storage system 200.

The server resources control table 115 shown in FIG. 6 describes the CPUallocation, but the CPU numbers may be used. Also, while the storageresources control table 265 shown in FIG. 7 describes the CPU numbers,CPU allocation may be used.

FIG. 8 is a diagram illustrating the connections in the computer systemaccording to the first embodiment. Unlike FIG. 2 that shows thefunctions of the computer system in the hardware perspective, FIG. 8shows the connections in the software perspective (seen from the virtualworld). Therefore, FIG. 8 does not show the hardware configuration ofthe computer system (e.g., the I/O adaptors 106 etc. and the channeladaptors 231 etc.).

The virtual machine (0) 130 includes two virtual I/O adaptors (0) 131and (1) 132. The virtual storage system (0) 240 has two virtual channeladaptors (0) 241 and (1) 242. The virtual I/O adaptor (0) 131 isconnected with the virtual channel adaptor (0) 241 and the virtual I/Oadaptor (1) 132 is connected with the virtual channel adaptor (1) 242.

Similarly, the virtual machine (1) 140 includes two virtual I/O adaptors(2) 141 and (3) 142. The virtual storage system (1) 250 has two virtualchannel adaptors (2) 251 and (3) 252. The virtual I/O adaptor (2) 141 isconnected with the virtual channel adaptor (2) 251 and the virtual I/Oadaptor (3) 142 is connected with the virtual channel adaptor (3) 252.

Also, the virtual machine (2) 180 includes two virtual I/O adaptors (4)181 and (5) 182. The virtual I/O adaptor (4) 181 is connected with thevirtual channel adaptor (0) 241 and the virtual I/O adaptor (5) 182 isconnected with the virtual channel adaptor (1) 242.

Similarly, the virtual machine (3) 190 includes two virtual I/O adaptors(6) 191 and (7) 192. The virtual I/O adaptor (6) 191 is connected withthe virtual channel adaptor (2) 251 and the virtual I/O adaptor (7) 192is connected with the virtual channel adaptor (3) 252.

In other words, FIG. 8 shows the relations among the virtual machinenumbers 316, the virtual I/O adaptor numbers 315, the virtual channeladaptor numbers 312, and the virtual storage system numbers 311 in thevirtual path control table 310 shown in FIG. 5.

FIG. 9 is a flowchart of a cable connection process in the computersystem according to the first embodiment. This cable connection processis performed in the server system (0) 100. The same process is performedalso in the server system (1) 150 and the storage system 200.

First, an I/O adaptor of the server system (0) 100 (a channel adaptor ofthe storage system 200) detects a cable connection (S101).

Next, the server system (0) 100 exchanges physical addresses with theapparatus coupled by the network 410 (S102). For example, when theserver device (0) 100 is connected to the storage system 200, the serversystem (0) 100 sends an inquiry to the connected system for a physicaladdress and obtains a physical address of a channel adaptor of thestorage system 200. The physical addresses exchanged in the step S102can be any addresses that uniquely identify the ports of adapters towhich the cable (I/O channel) is connected.

For example, World Wide Names (WWNs) are exchanged according to theFibre Channel protocol. In particular, in this invention, World Wideport Names may be used to specify the ports. With the iSCSI protocol,MAC addresses obtained by an address resolution technique (e.g. ARP) maybe exchanged.

Then, the obtained physical addresses are reported to the hypervisor103.

Next, the hypervisor 103 notifies the control terminal 300 of theobtained cable connection state (the physical address of the I/Oadaptors and the physical address of the channel adaptors) through thenetwork 410 (S103).

The control terminal 300 receives the physical address of the I/Oadaptor and the physical addresses of the channel adaptor and then waitsfor a notification of a physical address from the storage system thatincludes the connected channel adaptors.

Then, having received the physical addresses from both of the connectedsystems, the control terminal 300 registers the correspondence betweenthe I/O adaptors and the channel adaptors in the virtual path controltable 310 (S104). In other words, in the virtual path control table 310,the control terminal 300 registers channel adaptor numbers 313 and I/Oadaptor numbers 314 of the same number as the detected cables.

FIG. 10 is a flowchart of a process of creating a virtual machine in thecomputer system according to the first embodiment. The virtual machinecreation process is performed in the server system (0) 100. The sameprocess is performed also in the server system (1) 150.

First, the administrator operates the control terminal 300 to setallocation of server resources of the server system (0) 100 and gives aninstruction to create a virtual machine (S111). The control terminal 300sends the resource allocation to the server system (0) 100.

The server system (0) 100 receives the virtual machine creationinstruction from the control terminal 300 and then the hypervisor 103creates a virtual machine by allocating server resources of the serversystem (0) 100, other than I/O adaptors, according to the receivedvirtual machine creation instruction (S112).

Then, when completing the virtual machine creation, the hypervisor 103notifies the control terminal 300 of the completion of the virtualmachine creation.

The control terminal 300 receives the notification of the completion ofthe virtual machine creation from the server system (0) 100 and thenchecks whether a virtual storage system should be created in the storagesystem 200 (S113).

Then, when the control terminal 300 judges that a virtual storage systemshould be created, the flow moves to a step S114. On the other hand,when the control terminal 300 judges that there is no need to create avirtual storage system, the flow moves to a step S115.

For example, when a virtual machine is created for the first time in theserver system (0) 100, it is necessary to create a virtual storagesystem that the virtual machine accesses. On the other hand, when thecreated virtual machine uses a virtual storage system already created,then there is no need to newly create a virtual storage system.

In the step S114, the control terminal 300 sends allocation of storageresources of the storage system 200 to the storage system 200 and givesan instruction to create a virtual storage system. The storage system200 receives the virtual storage system creation instruction from thecontrol terminal 300 and then the storage hypervisor 214, 224 creates avirtual storage system by allocating the storage resources of thestorage system 200, other than channel adaptors, according to thereceived virtual storage system creation instruction (S114).

Then, when completing the virtual storage system creation, the storagehypervisor 214, 224 notifies the control terminal 300 of the completionof the virtual storage system creation.

The control terminal 300 receives the notification of the completion ofthe virtual storage system creation from the storage system 200 and thenchecks whether virtual adaptors (virtual channel adaptors and virtualI/O adaptors) should be created (S115).

Then, when the control terminal 300 judges that virtual adaptors shouldbe created, the flow moves to a step S116. On the other hand, when thecontrol terminal 300 judges that there is no need to create virtualadaptors, the flow moves to a step S117.

For example, when a virtual machine is created for the first time in theserver system (0) 100, it is necessary to create virtual adaptors foruse by the virtual machine. On the other hand, there is no need tocreate virtual adaptors when already created virtual adaptors are used,or when redundant ports are used.

In the step S116, the resources of an I/O adaptor (or a channel adaptor)are allocated to create a virtual adaptor (S116). Virtual I/O adaptorsare created by the hypervisor 103, 153, and virtual channel adaptors arecreated by the storage hypervisor 214, 224.

After creating a virtual I/O adaptor, the hypervisor 103 adds an entryto the virtual I/O adaptor control table 110. In this process, thevirtual I/O adaptor number 112 and the virtual machine number 113 areregistered in the virtual I/O adaptor control table 110. In the stepS112, the I/O adaptor number 111 is blank because I/O adaptor resourceshave not been allocated.

Also, the storage hypervisor 214, after creating a virtual channeladaptor, adds an entry to the virtual channel adaptor control table 260.In this process, the virtual storage system number 261 and the virtualchannel adaptor number 262 are registered in the virtual channel adaptorcontrol table 260. In the step S114, the channel adaptor number 263 isblank because channel adaptor resources have not been allocated.

After that, a path is established between the channel adaptor and thevirtual channel adaptor (S117). In other words, the channel adaptornumber 263 corresponding to the virtual channel adaptor number 262 isregistered in the virtual channel adaptor control table 260. Thus, thevirtual channel adaptor control table 260 is completed and a path in theserver system (0) 100 is established.

Next, the storage hypervisor 214, 244 sends, to the control terminal300, the virtual storage system number 261, the virtual channel adaptornumber 262, and the channel adaptor number 263 in the virtual channeladaptor control table 260. The control terminal 300 receives theinformation contained in the virtual channel adaptor control table 260and then searches and retrieves an entry corresponding to the channeladaptor number 313 in the virtual path control table 310. Then, thecontrol terminal 300 registers the received information in the virtualstorage system number 311 and the virtual channel adaptor number 312 ofthe retrieved entry (S118). The control terminal 300 is now capable ofmanaging the relation from the virtual storage system to the channeladaptor.

Next, using the control terminal 300, the administrator selects an I/Oadaptor that is connected to the target channel adaptor (S119). In thisprocess, the virtual machine control program 301 may indicate one or aplurality of I/O adaptors that are physically connected to the targetchannel adaptor so that the administrator can select one. The controlterminal 300 sends information about the selected I/O adaptor to thehypervisor 103.

The hypervisor 103 receives the information about the selected I/Oadaptor and creates a path between the I/O adaptor and the virtual I/Oadaptor (S120). In other words, the channel adaptor number 263corresponding to the virtual channel adaptor number 262 is registered inthe virtual channel adaptor control table 260. Thus, the virtual I/Oadaptor control table 110 is completed and a path in the server systemis established.

Next, the hypervisor 103 sends, to the control terminal 300, the I/Oadaptor number 111, the virtual I/O adaptor number 112, and the virtualmachine number 113 in the virtual I/O adaptor control table 110. Thecontrol terminal 300 receives the information contained in the virtualI/O adaptor control table 110 and then searches and retrieves an entrycorresponding to the I/O adaptor number. Then, the control terminal 300registers the received information in the virtual I/O adaptor number 315and the virtual machine number 316 of the retrieved entry (S121). Thus,the route from the virtual storage system to the virtual machine hasbeen registered in the virtual path control table 310. The controlterminal 300 is now capable of managing the relation from the virtualstorage system to the virtual machine.

After that, whether a redundant path should be created is checked(S122). When it is judged that a redundant path should be created, theflow returns to the step S115 and checks whether virtual adaptors usedfor the redundant path should be created. Subsequently, a redundant pathis created through the process steps S116 to S122.

When adaptors are newly created for the creation of a redundant path(when there is no redundant adaptors), the flow may return to the stepS116. When new adaptors are not created for the creation of a redundantpath (when there are redundant adaptors), the flow may return to thestep S117.

After the completion of redundant path creation, whether a redundantconfiguration should be created is checked (S123). When it is judgedthat a redundant configuration should be created, the flow returns tothe step S112 and virtual machines used in the redundant configurationis created through the process steps S112 to S122.

FIG. 11 is a diagram illustrating the structure of communicationprotocol layers for the I/O channels 400 of the computer systemaccording to the first embodiment.

When accessing a logical unit in the storage system 200, the OS (0) 135on the virtual machine (0) 130 processes input/output according to adisk I/O protocol (e.g. the SCSI standard). In this embodiment, the diskI/O protocol layer is referred to as “disk I/O layer” 1100, 1106.

While a disk I/O command issued by the OS (0) 135 is received by thehypervisor 103, a communication protocol layer exists also between thehypervisor 103 and the storage hypervisors 214 and 224. Thiscommunication protocol layer is referred to as “hypervisor communicationlayer” 1101, 1105.

Also, in this embodiment, a layer that handles general communication bythe I/O channels 400 is referred to as “I/O channel protocol layer”1102, 1104. Also, a layer of hardware, such as a physical communicationmedium, is referred to as “physical layer” 1103.

When the communication protocol of the I/O channels 400 has such alayered structure, the disk I/O layers 1101 and 1106 and the hypervisorcommunication layers 1101 and 1105 are not affected even when thecommunication medium forming the I/O channels 400 is changed.

The disk I/O command issued by the OS (0) 135 is sent to the virtualmachine (0) 130. The virtual machine (0) 130 issues that I/O command tothe virtual storage system (0) 240. In reality, this I/O command isreceived by the hypervisor 103.

The hypervisor 103 adds information to the disk I/O command (see FIG.12) and sends the disk I/O command to the storage hypervisors 214 and224. The storage hypervisors 214 and 224 receive the command, extractthe disk I/O command, and send it to the virtual storage system (0) 240.

Communication with such a layered structure makes the OS (0) 135recognize as if it were communicating directly with the virtual storagesystem (0).

FIG. 12 is a diagram illustrating the information transmitted betweenthe server system (0) 100 and the storage system 200 according to thefirst embodiment.

The I/O channels 400 of this embodiment conduct communication using aframe 1200 as a unit. This is the same in common standards like theFibre Channel and Ethernet. The frame 1200 is formed of an I/O channelprotocol header 1201 and an I/O channel protocol payload 1202.

The I/O channel protocol header 1201 contains control informationrequired for communication in the I/O channel protocol layers 1102 and1104. Specifically, the I/O channel protocol header 1201 contains anidentifier of the source and an identifier of the destination. The I/Ochannel protocol payload 1202 is information transmitted in the I/Ochannel protocol layers 1102 and 1104, and the I/O channel protocollayers 1102 and 1104 have no concern with the contents.

The I/O channel protocol payload 1202 is formed of a hypervisorcommunication header 1203 and a hypervisor communication payload 1204.

The hypervisor communication header 1203 contains control informationrequired for communication in the hypervisor communication layers 1101and 1105. The contents of the hypervisor communication header 1203 willbe fully described later with FIG. 13. The hypervisor communicationpayload 1204 is data transmitted in the hypervisor communication layers1101 and 1105, and the hypervisor communication layers 1101 and 1105have no concern with the contents.

In this embodiment, the hypervisor communication payload 1204 is formedof information required for communication in the disk I/O layers 1100and 1106. Specifically, the information includes a disk I/O command andtransferred data. In this embodiment, the hypervisor communicationpayload 1204 contains information in the disk I/O layers 1100 and 1106because the disk I/O layers reside above the hypervisor communicationlayers 1101 and 1105. However, in communication between the hypervisorand storage hypervisor, information of a type other than disk I/O iscontained. In other words, when communication for a purpose other thandisk I/O is made between the hypervisor and storage hypervisor, aprotocol other than the disk I/O protocol is defined for thecommunication. The information of a type other than disk I/O isinformation conforming to the protocol.

FIG. 13 is a diagram illustrating the contents of the hypervisorcommunication header 1203 according to the first embodiment.

The hypervisor communication header 1203 contains a source hypervisornumber 1300, a source virtual machine number 1301, a source virtualadaptor number 1302, a destination hypervisor number 1310, a destinationvirtual machine number 13 11, and a destination virtual adaptor number1312. In this embodiment, the hypervisors and the storage hypervisorsare provided with unique identifiers so that systems including aplurality of server systems 100 and 150 and a plurality of storagesystems 200 can be dealt with.

The source hypervisor number 1300 is an identifier of the hypervisor orstorage hypervisor that has sent this frame.

The destination hypervisor number 1310 is an identifier of thehypervisor or storage hypervisor that should receive this frame.

The source virtual machine number 1301 is an identifier of the virtualmachine or virtual storage system that has sent this frame.

The destination virtual machine number 1311 is an identifier of thevirtual machine or virtual storage system that should receive thisframe.

The source virtual adaptor number 1302 is an identifier of the virtualI/O adaptor or virtual channel adaptor that has sent this frame.

The destination virtual adaptor number 1312 is an identifier of thevirtual I/O adaptor or virtual channel adaptor that should receive thisframe.

FIG. 14 is a flowchart of a process of sending a disk I/O commandaccording to the first embodiment. While the flowchart describes anexample in which the virtual machine (0) 130 accesses the virtualstorage system (0) 240 through the I/O adaptor (0) 106 and the channeladaptor (0) 231, the same process can be performed also with othervirtual machines 140, 180, and 190 and virtual storage system 250.

When a disk I/O command is issued, the OS (0) 135 sends the disk I/Ocommand to the virtual machine (0) 130 (the virtual I/O adaptor (0) 131)(S131). In reality, the disk I/O command sent to the virtual I/O adaptor(0) 131 is received by the hypervisor 103.

The hypervisor 103 then adds information to the disk I/O command (seeFIG. 12) and transfers the disk I/O command to the physical I/O adaptor(0) 106 (S132).

The I/O adaptor (0) 106 sends the disk I/O command to the connectedchannel adaptor (0) 231 (the virtual storage system (0) 240) (S133).

Then, the channel adaptor (0) 231 receives the disk I/O command sentfrom the I/O adaptor (0) 106 (S134). In reality, the disk I/O commandreceived by the channel adaptor (0) 231 is received by the storagehypervisor 214.

The storage hypervisor 214 extracts the destination virtual adaptornumber 1312 contained in the hypervisor communication header 1203 of thereceived disk I/O command. Then, the storage hypervisor 214 transfersthe disk I/O command to the extracted virtual channel adaptor (0) 241(S135).

FIG. 15 is a flowchart of a process of completion notification of a diskI/O command according to the first embodiment. While the flowchartdescribes an example in which the virtual storage system (0) 240accesses the virtual machine (0) 130 through the channel adaptor (0) 231and the I/O adaptor (0) 106, the same process can be performed also withother virtual storage system 250 and virtual machines 140, 180, and 190.

When the virtual storage system (0) 240 receives a disk I/O command fromthe virtual machine (0) 130, the virtual storage system (0) 240 obtainsthe virtual disk number that is the target of the access by the disk I/Ocommand to specify the accessed virtual disk and reads/writes datato/from the corresponding virtual disk 244.

In this process, the storage hypervisor 214 translates the virtual blockaddress of the accessed virtual disk 244 to a physical block address ofthe physical disk drive 236. The access to the virtual disk 244 is thenconverted to access to the physical disk drive 236. Then, the storagehypervisor 214 accesses the physical disk drive 236 and reads/writesdata.

When completing the data read from or data write to the physical disk,the virtual storage system (0) 240 issues a disk I/O completionnotification. The virtual storage system (0) 240 then sends the disk I/Ocompletion notification to the virtual channel adaptor (0) 241 (S141).In reality, the disk I/O completion notification sent to the virtualchannel adaptor (0) 241 is received by the storage hypervisor 214.

The storage hypervisor 214 then adds information to the disk I/Ocompletion notification (see FIG. 12) and transfers the disk I/Ocompletion notification to the physical channel adaptor (0) 231 (S142).

The channel adaptor (0) 231 sends the disk I/O completion notificationto the connected I/O adaptor (0) 106 (the virtual machine (0) 130)(S143).

Then, the I/O adaptor (0) 106 receives the disk I/O completionnotification sent from the channel adaptor (0) 231 (S144). In reality,the disk I/O completion notification received by the I/O adaptor (0) 106is received by the hypervisor 103.

The hypervisor 103 extracts the destination virtual adaptor number 1312contained in the hypervisor communication header 1203 of the receiveddisk I/O completion notification. Then, the hypervisor 103 transfers thedisk I/O completion notification to the extracted virtual I/O adaptor(0) 131 (S145).

FIG. 16 is a flowchart of a process of handling a fault according tothis embodiment. While the flowchart describes an example in which thehypervisor 103 detects a fault of the I/O channels 400, the hypervisor153 can detect faults in the same way.

First, the hypervisor 103 detects a breaking of I/O channel 400 (S151).This fault handling process is not performed when no breaking of I/Ochannels 400 is detected.

As for the breaking of I/O channels 400, an I/O channel 400 is judged tobe broken when, for example, the virtual machine 130 of the serversystem (0) 100 has issued a disk I/O command but does not receive a diskI/O completion notification before a timeout occurs. A breakingdetecting circuit for detecting breaking of I/O channels 400 may beprovided in the server system (0) 100 to monitor for breaking.

In other words, this fault handling process may be executed at themoment of an occurrence of a disk I/O, or may be executed otherwise.

Next, in order to keep the connection between the virtual machine (0)130 and the virtual storage system (0) 240, the hypervisor 103 changesthe connection path between the virtual I/O adaptor (0) 131 and thephysical I/O adaptor (0) 106 (the connection path in the server system(0) 100) (S152). For example, the hypervisor 103 sets up a connectionpath between the virtual I/O adaptor (0) 131 and the I/O adaptor (1)107.

Then, the contents of the virtual I/O adaptor control table 110 arealtered accordingly. In this embodiment, the I/O adaptor number 111 ischanged to “1” in the entry in which the I/O adaptor number 111 is “0”,the virtual I/O adaptor number 112 is “0” and the virtual machine number113 is “0”.

Alternatively, instead of changing the contents of the entry of thedetected fault, an entry may be added for the newly established path.

Subsequently, the hypervisor 103 notifies the control terminal 300 ofthe change of the connection path between the virtual I/O adaptor andthe physical I/O adaptor (the connection path in the server system (0)100) (S153).

The control terminal 300 receives the path change notification from thehypervisor 103 and alters the virtual path control table 310 (S154).Specifically, the I/O adaptor number 314 is changed to “1” in the entrywith the I/O adaptor number 314 of “0”, the virtual I/O adaptor number315 of “0”, and the virtual machine number 316 of “0”.

Then, the control terminal 300 notifies the hypervisor 103 of thecompletion of the alteration of the virtual path control table 310.

The hypervisor 103 receives the alteration completion notification fromthe control terminal 300 and retransmits uncompleted transmitinformation (e.g., an issued disk I/O command for which completionnotification has not been received) to the I/O adaptor that forms thenew path (S155).

FIG. 17 is a flowchart of a process of handling a fault according tothis embodiment. While the flowchart describes an example in which thestorage hypervisor 214 detects a fault of the I/O channels 400 in theI/O channel protocol layer 1104, the storage hypervisor 224 can detectfaults in the same way.

First, the storage hypervisor 214 detects a breaking of I/O channel 400(S161). This fault handling process is not performed when no breaking ofI/O channels 400 is detected.

As for the breaking of I/O channels 400, an I/O channel 400 is judged tobe broken when, for example, the virtual storage system 210 of thestorage system 200 has issued a disk I/O completion notification butdoes not receive a confirmation signal with respect to the disk I/Ocompletion notification before a timeout occurs. A breaking detectingcircuit for detecting breaking of I/O channels 400 may be provided inthe storage system 200 to monitor for breaking.

In other words, this fault handling process may be executed at themoment of an occurrence of a disk I/O, or may be executed otherwise.

Next, in order to keep the connection between the virtual storage system(0) 240 and the virtual machine (0) 130, the storage hypervisor 214changes the connection path between the virtual channel adaptor (0) 241and the physical channel adaptor (0) 231 (the connection path in thestorage system 200) (S162). For example, the storage hypervisor 214 setsup a connection path between the virtual channel adaptor (0) 241 and thechannel adaptor (1) 232.

Then, the contents of the virtual channel adaptor control table 260 arealtered accordingly. In this embodiment, the channel adaptor number 263is changed to “1” in the entry in which the virtual storage systemnumber 261 is “0”, the virtual channel adaptor number 262 is “0” and thechannel adaptor number 263 is “0”.

Alternatively, instead of changing the contents of the entry of thedetected fault, an entry may be added for the newly established path.

Subsequently, the storage hypervisor 214 notifies the control terminal300 of the change of the connection path between the virtual I/O adaptorand the physical I/O adaptor (the connection path in the server system(0) 100) (S163).

The control terminal 300 receives the path change notification from thestorage hypervisor 214 and alters the virtual path control table 310(S164). Specifically, the channel adaptor number 313 is changed to “1”in the entry with the virtual storage system number 311 of “0”, thevirtual channel adaptor number 312 of “0”, and the channel adaptornumber 313 of “0”.

Then, the control terminal 300 notifies the storage hypervisor 214 ofthe completion of the alteration of the virtual path control table 310.

The storage hypervisor 214 receives the alteration completionnotification from the control terminal 300 and retransmits uncompletedtransmit information to the I/O adaptor that forms the new path (S165).

Information thus transmitted includes a completion notification about adisk I/O command. There are a plurality of communication protocols forI/O channels. According to the Fibre Channel, which is one of suchcommunication protocols, an I/O adaptor or channel adaptor that hasreceived some information may report the reception (acknowledgement) tothe source. The step S165 retransmits information transmitted to the I/Oadaptor but for which no acknowledgement has been received.

As described so far, by the fault handling process on the virtualmachine side shown in FIG. 16 and the fault handling process on thevirtual storage system side shown in FIG. 17, the virtual path controltable 310 is altered and the path between the virtual machine (0) 130and the virtual storage system (0) 230 is recovered, wherebycommunication is enabled between the two parties. Because this processof changing a path is performed by the hypervisor 103 and the storagehypervisor 214, the OS (0) 135, the OS (1) 145, the OS (2) 185, and theOS (3) 195 are unable to detect faults. This provides an advantage thatthere is no need to handle a fault on the OS side.

FIG. 18 is a diagram illustrating a screen displayed on the controlterminal 300 according to the first embodiment.

A monitor screen 320 of the control terminal 300 displays controlinformation required for the administrator to control the computersystem. In other words, the monitor screen 320 of the control terminal300 visually displays the relations among the pieces of informationstored in the virtual path control table 310 shown in FIG. 5 (thevirtual machine numbers 316, the virtual I/O adaptor numbers 315, theI/O adaptor numbers 314, the channel adaptor numbers 313, the virtualchannel adaptor numbers 312, and the virtual storage system numbers311).

Specifically, the monitor screen 320 includes virtual machine displayareas 321, I/O adaptor display areas 322, channel adaptor display areas323, and storage system display areas 324.

The virtual machine display areas 321 display the virtual machines (0)to (3) of this computer system. The virtual I/O adaptors are displayedin each virtual machine.

The I/O adaptor display areas 322 display the physical I/O adaptors (0)to (3) of the server systems of the computer system.

The channel adaptor display areas 323 display the physical channeladaptors (0) to (3) of the storage system of the computer system.

The storage system display areas 324 display the virtual storage systems(0) and (1) of the computer system. The virtual channel adaptors aredisplayed in each virtual storage system.

The monitor screen 320 also displays the paths established between thevirtual machines (virtual I/O adaptors) and the virtual storage systems(virtual channel adaptors). The monitor screen 320 visually shows whichI/O adaptors and which channel adaptors the paths pass through.Furthermore, different paths are indicated by different kinds of lines(or in different colors) so that the routing of the paths can be seeneasily.

The monitor screen 320 of the control terminal 300 thus visuallydisplays the routing of paths to show that the paths connecting thevirtual machines and the virtual storage systems are physicallyseparated into different paths and thus form a redundant configuration.The administrator can see the correspondence between the physicalconnections and virtual connections between the virtual machines and thevirtual storage systems.

In other words, between the virtual machine (0) and the virtual storagesystem (0), two paths are routed via different virtual I/O adaptors anddifferent virtual channel adaptors. Physically, too, the two paths passvia different I/O adaptors and different channel adaptors, thus forminga redundant configuration both virtually and physically.

As described so far, in creating a virtual machine according to thefirst embodiment of this invention, a virtual machine control programsets the configuration of the computer system while confirming correctrelations among physical resources (physical paths) and virtualresources (virtual paths) according to a virtual path control table. Inother words, in logically partitioning server and storage systems incooperation, the relations among the physical resources and logicalresources can be confirmed. This makes it possible to easily set ahigh-availability configuration of a computer system using virtualmachines.

Second Embodiment

According to a second embodiment of this invention, path controlprograms run on virtual machines. The path control programs control thepaths set up between the virtual machines and the virtual storagesystems and also handle faults of the I/O channels.

FIG. 19 is a diagram illustrating connections in a computer systemaccording to the second embodiment. Like FIG. 8, FIG. 19 shows theconnections in the computer system in the software perspective (seenfrom the virtual world). FIG. 19 therefore does not show the hardwareconfiguration of the computer system (e.g., the I/O adaptors 106 etc.and the channel adaptors 231 etc.).

In the virtual machine (0) 130, an OS (0) 135 and a path control program136 run. The path control program 136 is stored in the storage system200, and when the virtual machine (0) 130 is booted, the path controlprogram 136 is read from the storage system 200, loaded into a mainmemory 104, and executed by a CPU 101. Alternatively, the path controlprogram 136 may be stored in a non-volatile memory in the server systemand loaded from the non-volatile memory. The path control program 136manages the paths set up between the virtual I/O adaptors related to thevirtual machine (0) 130 and the virtual channel adaptors related to thevirtual storage system (0) 240.

Similarly, an OS145 and a path control program 146 run in a virtualmachine 140. An OS185 and a path control program 186 run in a virtualmachine 180. Also, an OS195 and a path control program 196 run in avirtual machine 190. The path control programs 156, 186, and 196 managethe paths set up for the respective virtual machines.

Like FIG. 8 described earlier, FIG. 19, too, shows the relations amongthe virtual machine numbers 316, the virtual I/O adaptor numbers 315,the virtual channel adaptor numbers 312, and the virtual storage systemnumbers 311 in the virtual path control table 310 shown in FIG. 5. Theconnections between the virtual machines and the virtual storage systemsare the same as those shown in FIG. 8 described earlier and thereforenot described here again.

FIG. 20 is a flowchart of a fault handling process according to thesecond embodiment. While the flowchart shows an example in which thepath control program 136 in the virtual machine (0) 130 detects a faultof I/O channels 400, the other path control programs 146, 186, and 196are also capable of detecting faults in the same way.

First, the path control program 136 detects a breaking of an I/O channel400 (S171). This fault handling process is not executed when no breakingof I/O channels 400 is detected.

As for the breaking of I/O channels 400, an I/O channel 400 is judged tobe broken when, for example, the virtual machine 130 of the serversystem (0) 100 has issued a disk I/O command but does not receive a diskI/O completion notification before a timeout occurs. A breakingdetecting circuit for detecting breaking of I/O channels 400 may beprovided in the server system (0) 100 and the path control program 136may monitor for breaking.

In other words, this fault handling process may be executed at themoment of an occurrence of a disk I/O, or may be executed otherwise.

Next, the path control program 136 switches the virtual I/O adaptor thatthe virtual machine (0) 130 uses to access the virtual storage system(0) 240 (S172). Specifically, the path control program 136 switches theI/O from the virtual I/O adaptor (0) 131 to the virtual I/O adaptor (1)132.

Subsequently, the path control program 136 retransmits uncompletedtransmit information (e.g., an issued disk I/O command for whichcompletion notification has not been received) to the corresponding I/Oadaptor (S173).

In this way, according to the second embodiment, when an I/O channelfails, the path control program switches over the virtual I/O adaptorthat the virtual machine uses. This makes it possible to recover fromthe fault without altering the virtual path control table 310 of thecontrol terminal 300.

Third Embodiment

According to a third embodiment of this invention, cluster controlprograms run on virtual machines. The cluster control programs controlthe cluster configuration with the virtual machines forming a pair.

FIG. 21 is a diagram illustrating connections in a computer systemaccording to the third embodiment. Like FIG. 8, FIG. 21 shows theconnections in the computer system in the software perspective (seenfrom the virtual world). FIG. 21 therefore does not show the hardwareconfiguration of the computer system (e.g., the I/O adaptors 106 etc.and the channel adaptors 231 etc.).

In the virtual machine (2) 180, an OS (2) 185 and a cluster controlprogram 187 run. The cluster control program 187 is stored in thestorage system 200, and when the virtual machine (2) 180 is booted, thecluster control program 187 is read from the storage system 200, loadedinto a main memory (1) 154, and executed by a CPU 151. Alternatively,the cluster control program 187 may be stored in a non-volatile memoryin the server system and loaded from the non-volatile memory.

In this embodiment, the virtual machine (0) 130 and the virtual machine(2) 180 configured on different hardware systems (server systems) form acluster. The virtual machines forming a cluster pair are connectedthrough a communication path 421. The communication path 421 may beformed of a specialized line connecting the server system (0) 100 andthe server system (1) 150. Alternatively, the network 410 may be used.

The virtual machines forming a cluster pair issue a control I/O forfault detection (e.g., a heart beat signal) through the communicationpath 421 with given timing (e.g., periodically). Then, when one virtualmachine does not receive the control I/O issued by the other virtualmachine of the cluster pair, that one virtual machine judges that afault has occurred in the other virtual machine.

The virtual machines forming a cluster pair have virtual I/O adaptors ofthe same configuration because, in the event of a failover, they have toprovide services using the same data stored in the virtual storagesystem 240 and the like, and the virtual I/O adaptors forming pairs inthe cluster are connected to the virtual storage system in the same way.

Similarly, the virtual machine (1) 140 and the virtual machine (3) 190are connected through a communication path 422 and form a cluster.

Like FIG. 8 described earlier, FIG. 21, too, shows the relations amongthe virtual machine numbers 316, the virtual I/O adaptor numbers 315,the virtual channel adaptor numbers 312, and the virtual storage systemnumbers 311 in the virtual path control table 310 shown in FIG. 5. Theconnections between the virtual machines and the virtual storage systemsare the same as those shown in FIG. 8 described earlier and thereforenot described again here.

FIG. 22 is a flowchart of a fault handling process according to thethird embodiment. The flowchart describes an example in which thehypervisor 103 reboots the virtual machine (0) 130, but otherhypervisors and other virtual machines are capable of performing thesame rebooting process.

First, when the cluster control program 137 does not receive a heartbeat signal from the virtual machine (0) 130 for a predetermined timeperiod, the heart beat is judged to be lost (S181). This fault handlingprocess is not executed when loss of heart beat signal is not detected.

Specifically, for example, the heart beat signal is judged to be lostwhen periodically sent heart beat signals are not received for apredetermined time period for plural times. In other words, it is judgedthat a fault has occurred in the virtual machine (0) 130.

Next, the cluster control program 187 makes preparations for a failoverby loading, in the virtual machine (2) 180, the programs for servicesthat the failed virtual machine (0) 130 had been providing (S182). Then,the virtual machine (0) 130 is separated off from the computer system.Then, access from clients (not shown) to the virtual machine (0) 130 isstopped.

Subsequently, the cluster control program 187 notifies the administratorthat a fault has occurred in the virtual machine (0) 130 and thatpreparation for taking over the work have been completed (S183).

Then, with an instruction from the administrator, the service is takenover from the virtual machine (0) 130 to the virtual machine (2) 180.

FIG. 23 is a flowchart of a process of rebooting a virtual machineaccording to the third embodiment. The flowchart describes an example inwhich the hypervisor 103 reboots the virtual machine (0) 130, but otherhypervisors and other virtual machines are capable of executing the samerebooting process.

First, the administrator gives an instruction from the control terminal300 to reboot the stopped virtual machine (0) 130 (S191).

The virtual machine (0) 130 receives the reboot instruction from thecontrol terminal 300 through the network 410 Actually, the hypervisor103 receives the reboot instruction. (S192).

Subsequently, the hypervisor 103 reboots the virtual machine (0) 130(S193).

After that, the administrator gives an instruction for a failback fromthe control terminal 300 (S194). With this failback instruction, thework taken over to the virtual machine (2) 180 is restarted in thevirtual machine (0) 130. Specifically, the program of services that therebooted virtual machine had been providing is started in the virtualmachine (0) 130. Then, the virtual machine (0) 130 is connected to thecomputer system. Thus, access to the virtual machine (0) 130 fromclients restarts.

Fourth Embodiment

A fourth embodiment of this invention differs from the first embodimentin that the control terminal 300 does not have a virtual path controltable but the storage system 200 has a virtual path control table 266.

FIG. 24 is a functional block diagram of a computer system according tothe fourth embodiment.

The computer system of the fourth embodiment includes a server system(0) 100, a server system (1) 150, a storage system 200, and a controlterminal 300. The same components as those described in the firstembodiment are shown at the same reference numerals and not describedhere again.

Functionally, the server system (0) 100 and the server system (1) 150can be roughly divided into a physical layer, a hypervisor layer, and avirtual machine layer. The configuration and functions of parts of eachlayer are the same as those described in the first embodiment.

Also, functionally, the storage system 200 can be roughly divided into aphysical layer, a hypervisor layer, and a virtual storage layer. Theconfiguration and functions of parts of each layer are the same as thosedescribed in the first embodiment.

The storage system 200 of this embodiment has the virtual path controltable 266. The storage hypervisors 214 and 224 control the virtualconfiguration of the storage system 200 using the virtual path controltable 266. In other words, in the fourth embodiment, the storage system200 having the virtual path control table 266 includes a control unit(not shown) containing connection information that defines connectionsbetween the virtual machines and the virtual storage systems (thevirtual path control table 266).

The virtual path control table 266 describes the relations between thevirtual machines and the virtual storage systems. Specifically, thevirtual path control table 266 has the same configuration and containsthe same control information as the virtual path control table 310,shown in FIG. 5, of the first embodiment.

The storage hypervisors 214 and 224 generate the virtual path controltable 266 by collecting together the control information contained inthe virtual I/O adaptor control table 110 of the server system (0) 100,the control information contained in the virtual I/O adaptor controltable 160 of the server system (1) 150, and the control informationcontained in the virtual channel adaptor control table 260 of thestorage system 200.

The control terminal 300 is a computer apparatus that manages thecomputer system and includes a CPU, a memory, an input/output device,and an interface in an integrated fashion. The control terminal 300 is aservice processor (SVP). The administrator can manage the computersystem by operating the control terminal 300.

The interface of the control terminal 300 is connected to the storagesystem 200. Alternatively, instead of being connected directly to thestorage system 200, the control terminal 300 may be connected to thestorage system 200 via the network 410.

While FIG. 24 describes an example in which two server systems 100 and150 and one storage system 200 are connected, three or more serversystems may be provided, and two or more storage systems may beprovided. In such a case, the control terminal 300 may be connected toany of the storage systems, but is preferably connected to a storagesystem that possesses the virtual path control table 266. A plurality ofstorage systems may possess virtual path control tables 266. The tablecan thus be duplicated in case of a fault.

Fifth Embodiment

A fifth embodiment of this invention differs from the first embodimentin that the control terminal 300 does not have a virtual path controltable but the server system (0) 100 has a virtual path control table116.

FIG. 25 is a functional block diagram of a computer system according tothe fifth embodiment.

The computer system of the fifth embodiment includes a server system (0)100, a server system (1) 150, a storage system 200, and a controlterminal 300. The same components as those described in the firstembodiment are shown at the same reference numerals and not describedhere again.

Functionally, the server system (0) 100 and the server system (1) 150can be roughly divided into a physical layer, a hypervisor layer, and avirtual machine layer. The configuration and functions of parts of eachlayer are the same as those described in the first embodiment.

The server system (0) 100 of this embodiment has the virtual pathcontrol table 116. The hypervisor 103 controls the virtual configurationof the computer system using the virtual path control table 116. Inother words, in the fifth embodiment, the server system (0) 100 havingthe virtual path control table 116 includes a control unit (not shown)containing connection information that defines connections between thevirtual machines and the virtual storage systems (the virtual pathcontrol table 116).

The virtual path control table 116 describes the relations between thevirtual machines and the virtual storage systems. Specifically, thevirtual path control table 116 has the same configuration and containsthe same control information as the virtual path control table 310 shownin FIG. 5 of the first embodiment.

The hypervisor 103 generates the virtual path control table 116 bycollecting together the control information contained in the virtual I/Oadaptor control table 110 of the server system (0) 100, the controlinformation contained in the virtual I/O adaptor control table 160 ofthe server system (1) 150, and the control information contained in thevirtual channel adaptor control table 260 of the storage system 200.

Functionally, the storage system 200 can be roughly divided into aphysical layer, a hypervisor layer, and a virtual storage layer. Theconfiguration and functions of parts of each layer are the same as thosedescribed in the first embodiment.

The control terminal 300 is a computer apparatus that manages thecomputer system and includes a CPU, a memory, an input/output device,and an interface in an integrated fashion. The control terminal 300 is aservice processor (SVP). The administrator can manage the computersystem by operating the control terminal 300.

The interface of the control terminal 300 is connected with the serversystems 100 and 150 and with the storage system 200 through the network410. This interface sends and receives control signals and controlinformation (the contents of the various control tables) to and from thesystems connected through the network 410. The control terminal 300 maybe connected directly to the server system (0) 100.

While FIG. 25 describes an example in which two server systems 100 and150 and one storage system 200 are connected, three or more serversystems may be provided, and two or more storage systems may beprovided. In such a case, the control terminal 300 may be connected toany of the server systems, but is preferably connected to a serversystem that possesses the virtual path control table 116. A plurality ofserver systems may possess virtual path control tables 116. The tablecan thus be duplicated in case of a fault.

Sixth Embodiment

A sixth embodiment of this invention differs from the first embodimentdescribed earlier in that the I/O adaptors and the channel adaptors arenot directly connected by the I/O channels 400 but are connected via I/Ochannel switches 401.

FIG. 26 is a block diagram showing the hardware configuration of acomputer system according to the sixth embodiment.

The computer system according to the sixth embodiment includes a serversystem (0) 100, a server system (1) 150, a storage system 200, a controlterminal 300, and the I/O channel switches 401. The same components asthose described in the first embodiment are shown at the same referencenumerals and are not described again here.

Application programs run on the server system (0) 100 and the serversystem (1) 150. The configurations and functions of parts of the serversystem (0) 100 and the server system (1) 150 are the same as thosedescribed in the first embodiment.

An I/O adaptor (0) 106 and an I/O adaptor (1) 107 are connected with theI/O channel switches 401 through the I/O channels 400.

When the I/O adaptor 106 or 107 sends a data input/output request andoutput data to the storage system 200, the I/O channel switch 401receives the data input/output request and output data. Then, the I/Ochannel switch 401 checks the destination of the data input/outputrequest and output data and transfers the data input/output request andoutput data to the destination storage system 200.

The I/O adaptors 106 and 107 receive data stored in the storage system200 via the I/O channel switches 401.

In the sixth embodiment, too, two I/O adaptors are provided, but moreI/O adaptors may be provided. The two I/O adaptors 106 and 107 operateindependently. The processing system is thus duplicated so that accessfrom the server system (0) 100 to the storage system 200 is not stoppedeven when one I/O adaptor fails.

The storage system 200 stores data required for operations of the serversystems 100 and 150. The configuration and functions of parts of thestorage system 200 are the same as those described in the firstembodiment.

The channel adaptors (0) 231 to (3) 234 are connected with the I/Ochannel switches 401 through the I/O channels 400. The I/O channelswitches 401 are connected also with the server system (0) 100 and theserver system (1) 150.

The channel adaptor (0) 231 and the channel adaptor (1) 232 areconnected with the server system (0) 100 through the I/O channels 400and the I/O channel switches 401. The channel adaptors 231 and 232receive data input/output requests and output data from the serversystem (0) 100 and send data stored in the storage system 200.

Similarly, the channel adaptor (2) 233 and the channel adaptor (3) 234are connected with the server system (1) 150 through the I/O channels400 and the I/O channel switches 401. The channel adaptors 233 and 234receive data input/output requests and output data from the serversystem (1) 150 and send data stored in the storage system 200.

The storage system 200 thus has a plurality of channel adaptors. Theplurality of channel adaptors 231 to 234 operate independently. Theprocessing system is thus duplicated so that access to the storagesystem 200 from the server systems 100 and 150 does not stop even whenone channel adaptor fails.

The control terminal 300 is a computer apparatus that manage in anintegrated fashion. The control terminal 300 has a virtual path controltable 317 shown in FIG. 27 of a type different from that described inthe first embodiment. This is because the paths pass via the I/O channelswitches 401 in the sixth embodiment.

The configuration and functions of the other parts of the controlterminal 300 are the same as those described in the first embodiment.

The I/O channels 400 are formed of a communication medium that can makecommunication according to a protocol suitable for data transfer, e.g.,the Fibre Channel protocol.

In the sixth embodiment, the I/O channels 400 connect between the I/Oadaptors of the server systems 100 and 150 and the I/O channel switches401, and between the channel adaptors of the storage system 200 and theI/O channel switches 401.

The I/O channel switches 401 are packet transfer devices having aplurality of ports. For example, when the Fibre Channel protocol is usedfor the I/O channels 400, SAN switches are used as the I/O channelswitches 401.

The I/O channel switches 401 each have ports respectively connected tothe I/O channels 400 that connect with the I/O adaptors or the channeladaptors. The I/O channel switches 401 hold routing information. Therouting information is a routing table (not shown) used to judgedestinations of transferred packets. The I/O channel switches 401 referto the routing table to judge the destination of a packet inputted to aport and sends the packet from a port connected to the destination I/Oadaptor or channel adaptor.

The I/O channel switches 401 have a zone configuration table shown inFIG. 30. The zone configuration table defines whether communication ispossible or not between ports of the I/O channel switches 401. The I/Ochannel switches 401 transfer packets only between ports defined asbeing capable of making communication. Therefore, packet transfer isimplemented only between particular apparatuses. The zone configurationtable and the routing table may be formed as a single table.

The I/O channel switches 401 are connected also to the network 410. TheI/O channel switches 401 are connected also to each other through aninterconnecting line 402. The I/O channel switches 401 exchange therouting information for packet transfer through the interconnecting line402. The I/O channel switches 401 thus share the routing information.

In the sixth embodiment, two I/O channel switches 401 are provided. Thetwo I/O channel switches 401, too, operate independently. The processingsystem is thus duplicated so that access from the server system (0) 100to the storage system 200 is not stopped even when one I/O channelswitch fails.

The I/O channel switches 401 are also capable of monitoring mutualoperating status using the interconnecting line 402. A method similar tothe cluster control programs described in the third embodiment can beadopted for the monitoring of operating conditions and the handling offaults.

The network 410 connects the server system (0) 100, the server system(1) 150, the storage system 200, the control terminal 300, and the I/Ochannel switches 401. The network 410 is configured so that controlsignals and control information can be communicated among computersaccording to, e.g., the TCP/IP protocol, where Ethernet is used, forexample.

While FIG. 26 shows an example connecting two server systems 100 and 150and one storage system 200, three or more server systems may be providedand two or more storage systems may be provided.

FIG. 27 is a diagram illustrating the virtual path control table 317according to the sixth embodiment.

The virtual path control table 317 contains I/O channel switch portnumbers 318 and 319 in addition to the items contained in the virtualpath control table 310 described in the first embodiment.

The I/O channel port numbers (storage side) 318 are port numbers of theI/O channel switches 401 that are connected to the channel adaptors 231to 234.

The I/O channel port numbers (server side) 319 are port numbers of theI/O channel switches 401 that are connected to the I/O adaptors 106 to157.

In the sixth embodiment, managing the virtual paths requiresadditionally managing the port numbers of the I/O channel switches 401because the I/O adaptors 106 to 157 and the channel adaptors 231 to 234are connected only with the I/O channel switches 401.

FIG. 28 is a flowchart of a cable connection process in the computersystem according to the sixth embodiment. This cable connection processis performed in the server system (0) 100. The same process is performedalso in the server system (1) 150 and the storage system 200.

First, an I/O adaptor of the server system (0) 100 (a channel adaptor ofthe storage system 200) detects that a connection has been made with anI/O channel switch 401 (S191).

Next, the server system (0) 100 exchanges physical addresses with theI/O channel switch 401 (S192). The addresses exchanged in the step S192are configured so that the ports of the I/O channel switches 401 can beidentified.

The physical addresses exchanged in the step S192 can be any addressesthat uniquely identify the ports of the connected I/O channel switch401. For example, World Wide Names (WWNs) according to the Fibre Channelprotocol or MAC addresses according to the iSCSI protocol are exchanged.

Next, the hypervisor 103 notifies the control terminal 300 of theobtained cable connection status (the physical address of the I/Oadaptor and the physical address of the I/O channel switch) through thenetwork 410 (S193).

Then, the control terminal 300 registers the correspondence between theI/O adaptor and the I/O channel switch 401 in the virtual path controltable 317. Specifically, from the obtained physical addresses, thecontrol terminal 300 registers identifiers of the ports and adaptors inthe channel adaptor number 313, the I/O adaptor number 314, the I/Ochannel port number (storage side) 318, and the I/O channel port number(server side) 319.

FIG. 29 is a flowchart of a process of creating a virtual machine in thecomputer system according to the sixth embodiment.

In the virtual machine creation process of the sixth embodiment, theprocess steps from the virtual machine creation instruction (S111) tothe path creation between the I/O adaptor and the virtual I/O adaptor(S121) are the same as the corresponding process steps of the virtualmachine creation process of the first embodiment shown in FIG. 10.

After the control terminal 300 has registered the virtual I/O adaptornumber 315 and the virtual machine number 316 in the virtual pathcontrol table 317 (S121), a procedure of connecting the I/O adaptor andthe channel adaptor is performed (S201).

Specifically, the channel adaptor and the I/O adaptor that are capableof communication are identified by referring to the channel adaptornumber 313 and the I/O adaptor number 314 in the virtual path controltable 317. Then, a port corresponding to the channel adaptor and a portcorresponding to the I/O adaptor are specified, and whethercommunication between the ports is possible is checked. The result ofthe judgement is set in the zone configuration table shown in FIG. 30 ofthe I/O channel switch 401. With this zoning process, the I/O channelswitch 401 transfers packets only between particular ports (betweenparticular apparatuses).

Then, whether a redundant path should be created is checked (S122).Then, whether a redundant configuration should be created is checked(S123). These process steps S122 and S123 are the same as those of thevirtual machine creation process of the first embodiment shown in FIG.10.

FIG. 30 is a diagram showing a configuration of the zone configurationtable 1300 according to the sixth embodiment.

The zone configuration table 1300 contains input port numbers 1301,output port numbers 1302, and information as to whether communication ispossible between the ports.

For example, a packet inputted to the input port (0) can be outputtedfrom the output port (1) but cannot be outputted from the output port(n). Therefore, a packet can be transferred from a system connected tothe input port (0) to a system connected to the output port (1), but apacket cannot be transferred from a system connected to the input port(0) to a system connected to the output port (n).

In other words, when the destination of a packet inputted to the inputport (0) is a system connected to the output port (n), the packet cannotbe transferred to that system.

Also in the sixth embodiment, the virtual path control table 317 may bepossessed by the server systems 100 and 150, or by the storage system200. Also, the I/O channel switches 401 may possess the virtual pathcontrol table 317. When the I/O channel switches 401, connected to allof the server systems 100 and 150 and the storage system 200, possessthe virtual path control table 317 to control the computer system, thenit is not necessary to provide the control terminal 300 in the computersystem.

Thus, the hypervisor 103, the hypervisor 153, the storage hypervisor214, the storage hypervisor 224, and the I/O channel switches 401cooperate with one another to implement an I/O channel redundantconfiguration. Also, with the zoning, the security between the virtualmachines and between the virtual storage systems is ensured also in theI/O channels.

The description so far has mentioned that a plurality of server systemsand a plurality of storage systems may be provided. The embodiments ofthis invention have shown examples in which one server system islogically partitioned into a plurality of virtual machines, but,needless to say, this invention does not depend on how virtual machinesare implemented.

For example, this invention is applicable also to implementation ofvirtual machines as shown in FIG. 31. A server system (0) 100 has serverresources 3100 and 3101. Similarly, a server system (1) 150 has serverresources 3102 and 3103. Each of the server resources 3100, 3101, 3102,and 3103 includes a CPU, a memory, etc.

Then, the resource 3100 of the server system (0) and the resource 3102of the server system (1) may be extracted to create a virtual machine(4) 3104. Similarly, the resource 3101 of the server system (0) and theresource 3103 of the server system (1) may be extracted to create avirtual machine (5) 3105.

In a similar way, one virtual storage system can be configured byextracting resources of a plurality of storage systems.

This invention is applicable also to such virtual machine and virtualstorage system configurations.

While the present invention has been described in detail and pictoriallyin the accompanying drawings, the present invention is not limited tosuch detail but covers various obvious modifications and equivalentarrangements, which fall within the purview of the appended claims.

1. A computer system comprising a server system on which an applicationprogram runs, a storage system that stores data used by the serversystem, an I/O channel that connects the server system and the storagesystem, and a control terminal that manages control information aboutthe computer system, the server system comprising: server resourcesincluding a CPU, a memory, and an I/O adaptor; a first hypervisor thatlogically partitions the server resources to create and run anindependently operating virtual machine; and a virtual I/O adaptorcontrol table that stores control information about a virtual I/Oadaptor generated by the first hypervisor, the storage systemcomprising: storage resources including a CPU, a disk cache, a channeladaptor, and a physical disk; a second hypervisor that logicallypartitions the storage resources to create and run an independentlyoperating virtual storage system; and a virtual channel adaptor controltable that stores control information about a virtual channel adaptorgenerated by the second hypervisor, the I/O channel connecting the I/Oadaptor and the channel adaptor, the control terminal having a virtualpath control table that defines a connection between the virtual machineand the virtual storage system, generating the virtual path controltable based on the information stored in the virtual I/O adaptor controltable and the information stored in the virtual channel adaptor controltable.
 2. A computer system comprising a computer and a storage systemthat stores data, the computer comprising: a first control unit thatlogically partitions a first resource provided in the computer to createand run an independently operating virtual machine; and firstinformation that is used to manage the first resource, the storagesystem comprising: a second control unit that logically partitions asecond resource provided in the storage system to create and run anindependently operating virtual storage system; and second informationthat is used to manage the second resource provided in the storagesystem, wherein a relation between the virtual machine and the virtualstorage system is defined based on the first information and the secondinformation.
 3. The computer system according to claim 2, wherein: thefirst resource comprises an I/O adaptor, and additionally comprises aCPU and a memory when required; and the second resource comprises achannel adaptor, and additionally comprises a CPU, a disk cache, and aphysical disk when required.
 4. The computer system according to claim3, wherein a packet transfer device that transfers a packetsent/received between the I/O adaptor and the channel adaptor isprovided between the I/O adaptor and the channel adaptor.
 5. Thecomputer system according to claim 2, wherein at least one of thecomputer and the storage system holds third information that is used todefine a connection between the virtual machine and the virtual storagesystem, and generates the third information based on the firstinformation and the second information.
 6. The computer system accordingto claim 2, further comprising a control terminal that holds controlinformation about the computer system, wherein the control terminalholds third information that is used to define a connection between thevirtual machine and the virtual storage system, and generates the thirdinformation based on the first information and the second information.7. The computer system according to claim 2, further comprising acontrol unit holding third information that is used to define aconnection between the virtual machine and the virtual storage system,wherein the control unit generates, based on the first information andthe second information, the third information including routinginformation about a physical path between the virtual computer and thevirtual storage system.
 8. The computer system according to claim 7,wherein: the first resource includes an I/O adaptor; the second resourceincludes a channel adaptor; and the routing information about thephysical path included in the third information comprises acorrespondence between the I/O adaptor and the channel adaptor.
 9. Thecomputer system according to claim 8, wherein a connection between thefirst resource and the second resource is defined by a correspondencebetween the I/O adaptor and the channel adaptor included in the thirdinformation.
 10. The computer system according to claim 7, wherein: thefirst resource includes an I/O adaptor; the second resource includes achannel adaptor; the first control unit generates a virtual I/O adaptorlogically partitioned the I/O adaptor as a resource in the virtualmachine; the second control unit generates a virtual channel adaptorlogically partitioned the channel adaptor as a resource in the virtualstorage system; the third information includes information aboutconnections between the virtual machine, the virtual I/O adaptor, theI/O adaptor, the channel adaptor, the virtual channel adaptor and thevirtual storage system; and in the third information, the control unitregisters a relation between the I/O adaptor and the channel adaptorbased on the connection between the computer and the storage system,registers a relation between the virtual machine, the virtual I/Oadaptor, and the I/O adaptor based on an allocation of the firstresource, and registers a relation between the virtual storage system,the virtual channel adaptor, and the channel adaptor based on anallocation of the second resource.
 11. A computer connected to a storagesystem that stores data, comprising: a first control unit that logicallypartitions a first resource provided in the computer to create and runan independently operating virtual machine; and first information thatis used to manage the first resource, wherein a relation between thevirtual machine and a virtual storage system created in the storagesystem is defined based on the first information and second informationthat is used to manage a second resource provided in the storage system.12. The computer according to claim 11, wherein: the storage systemcomprises the second information and a second control unit thatlogically partitions the second resource to create and run anindependently operating virtual storage system; and the computer holdsthird information that is used to define a connection between thevirtual machine and the virtual storage system, and generates the thirdinformation based on the first information and the second information.13. A storage system that stores data and is connected to a computer,comprising: a second control unit that logically partitions a secondresource provided in the storage system to create and run anindependently operating virtual storage system; and second informationthat is used to manage the second resource, wherein a relation betweenthe virtual storage system and a virtual machine created in the computeris defined based on the second information and first information that isused to manage a first resource provided in the computer.
 14. Thestorage system according to claim 13 wherein: the computer comprises thefirst information and a first control unit that logically partitions thefirst resource to create and run an independently operating virtualmachine; and the storage system holds third information that is used todefine a connection between the virtual machine and the virtual storagesystem, and generates the third information based on the firstinformation and the second information.
 15. A control terminal thatmanages control information about a computer system comprising acomputer and a storage system that stores data, the computer comprisinga first control unit that logically partitions a first resource providedin the computer to create and run an independently operating virtualmachine, and first information that is used to manage the firstresource, the storage system comprising a second control unit thatlogically partitions a second resource provided in the storage system tocreate and run an independently operating virtual storage system, andsecond information that is used to manage the second resource, wherein arelation between the virtual machine and the virtual storage system isdefined based on the first information and the second information. 16.The control terminal according to claim 15, wherein the control terminalholds third information that is used to define a connection between thevirtual machine and the virtual storage system, and generates the thirdinformation based on the first information and the second information.